Storage system and method for managing a plurality of storage devices

ABSTRACT

A method of managing operation of a plurality of storage devices includes receiving current consumption information from at least one of the plurality of storage devices; and managing operation of at least one storage device, the operation management including permitting current consumption of a first one of the storage devices based on current consumption information that pertains to at least a second one of the storage devices. Also provided is a storage system that includes a plurality of storage devices, where each storage devices is configured to store data. A state machine, connected to each of the storage devices, is operative to permit current consumption of a first storage device based on current consumption information pertaining to at least a second storage device.

FIELD OF THE INVENTION

The present invention relates generally to storage devices. Moreparticularly, the invention relates to managing operation of a pluralityof storage devices.

BACKGROUND OF THE INVENTION

Writing data into, and erasing data from, a flash memory requires anelectrical current that is provided by a voltage source known as a“charge pump”. Briefly, a charge pump, as used in a flash memory, is anelectric circuit that generates a relatively high voltage that is usedto manipulate the amount of electrical charge within flash memory cellsto write new data into these cells, to erase data from memory cells, andto read data from these cells. Being a voltage source, a charge pump isdesigned to provide an electrical current whose value is permitted tochange from zero to some maximal value beyond which the level of theoutput voltage of the charge pump starts to decrease uncontrollably.

It may occasionally occur that, in a storage system that includesseveral storage devices, storage operations (e.g., writing data anderasing data) may need to be performed simultaneously in two or morestorage devices. However, for the reason stated above, writing datainto, and erasing data from, several storage devices simultaneously islimited by the maximum current that can be provided by the charge pumpand, with more than one storage device operating simultaneouslytypically on peak current consumption level, there is a danger that thetotal current that is consumed by these storage devices would exceed themaximum allowable current. Under such circumstances, the voltageprovided to the storage devices from a power supply or from the chargepump will drop below a valid operation level, causing the storage deviceto behave unpredictably. In such a case, the data that was lastprogrammed to the storage device could be lost.

There is, therefore, a need to for a storage system that can performmultiple storage operations simultaneously in a controlled manner,without jeopardizing the operating voltage level associated with suchoperations.

SUMMARY OF EXEMPLARY EMBODIMENTS

In view of the foregoing observations and the present needs, it would bedesirable to have a storage system and method for managing currentconsumption of a plurality of storage devices, where the currentconsumption management may include controlling current consumption ofone storage device based on current consumption information pertainingto the storage device and/or at least one other storage device of theplurality of storage devices.

Embodiments, various examples of which are discussed herein, may includea method of managing operation of a plurality of storage devices thatincludes receiving current consumption information from at least one ofthe plurality of storage devices; and managing operation of at least oneof the plurality of storage devices, where the operation managementincludes permitting current consumption of a first one of the pluralityof storage devices based on current consumption information thatpertains to at least a second one of the plurality of storage devices.

The current consumption information may include a real-time indicationof current consumption of at least the second one of the plurality ofstorage devices, and may be dynamically updated.

The managing may further include (a) programming of data onto the firstone of the plurality of storage devices, erasing of data from the firstone of the plurality of storage devices, and reading of data stored onthe first one of the plurality of storage devices, or (b) programming ofdata onto the second one of the plurality of storage devices, erasing ofdata from the second one of the plurality of storage devices, andreading of data stored on the second one of the plurality of storagedevices, based on the current consumption information.

The permitting may include suspending current consumption of the firstone of the plurality of storage devices and permitting currentconsumption of another one of the plurality of storage devices to beresumed, based on the current consumption information, or permittingcurrent consumption of the first one of the plurality of storage devicesto be resumed and suspending current consumption of another one of theplurality of storage devices, based on the current consumptioninformation. The permitting may be based on a priority assigned to atleast one of the plurality of storage devices. The priority may be basedon a degree of immunity to change in current consumption, a level ofactivity, a type of content associated with and/or a configuration ofthe at least one of the plurality of storage devices to which thepriority is assigned.

The method may also include connecting at least one of the plurality ofstorage devices directly to another one of the plurality of storagedevices. The first one of the plurality of storage devices may bedirectly connected to at least another one of the plurality of storagedevices, and the current consumption of this first storage device may bepermitted in response to a signal received by the first storage devicefrom at least the second one of the plurality of storage devices.

Also provided is a storage system that includes a plurality of storagedevices, where each of the plurality of storage devices being configuredto store data; and a state machine that is connected to each of thestorage devices. The state machine is operative to manage operation ofat least one of the plurality of storage devices. The operationmanagement includes permitting current consumption of a first one of theplurality of storage devices based on current consumption informationthat pertains to at least a second one of the plurality of storagedevices.

At least one of the storage devices may have a configuration complyingwith flash memory technology; and may be a dedicated non-removablestorage device that is not removable from the apparatus or a removablestorage device that is configured for removal from and addition to thestorage system, the removable storage device including a memory card.

Also provided is a storage device operationally connected to a statemachine and to one or more other storage device that includes: a storageportion configured to store data; and circuitry that is operative tomanage operation of the storage portion. The operation managementincludes permitting current consumption of the storage device based oncurrent consumption information that pertains to at least one otherstorage device operationally connected to the storage device. Permittingof the current consumption may be carried out based on a commandreceived from a state machine.

Also provided is a device for managing a plurality of storage devicesthat includes: a state machine that is operationally connected to aplurality of storage devices. The state machine is operative to manageoperation of at least one of the plurality of storage devices. Theoperation management includes permitting current consumption of a firstone of the plurality of storage devices based on current consumptioninformation that pertains to at least a second one of the plurality ofstorage devices.

Additional features and advantages of the embodiments described arepossible as will become apparent from the following drawings anddescription.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the various embodiments, reference is madeto the accompanying drawings, in which like numerals may designatecorresponding sections or elements throughout, and in which:

FIG. 1 shows a storage system having a plurality of storage devicesaccording to an example embodiment;

FIG. 2 shows a storage system having a plurality of storage devicesaccording to another example embodiment;

FIG. 3 shows in more detail a storage device of FIG. 1, according to anexample embodiment;

FIG. 4 shows in more detail a storage device of FIG. 2, according toanother example embodiment;

FIG. 5 shows the way current consumption information is stored on adatabase of information of the storage system of FIG. 1; and

FIG. 6 shows an example method by which a state machine controls ormanages a plurality of storage devices.

FIG. 7 shows an example method by which a state machine activates twostorage devices.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Example embodiments and various aspects thereof are further described inmore detail below. This description is not intended to limit the scopeof claims but instead to provide example embodiments. The followingdiscussion therefore presents exemplary embodiments, which includevarious storage systems for managing a plurality of storage devices.

Although the present disclosure refers to non-volatile storage devices,it may likewise be relevant to, or be used with, volatile storagedevice. By way of example, non-volatile storage devices may be of theFLASH or EEPROM type.

The storage device used herein may be any storage device known in theart that is operative to connect directly to and communicate directlywith a host. Such storage device may have a configuration that complieswith a memory card format, including a secured digital memory cardformat and a multimedia card format. The storage device may include anarray of memory cells (such as FLASH) having the capacity to store datain binary form in either a volatile or non-volatile manner. Note thathaving FLASH type memory cells is not meant as a limitation, as otherembodiments using any appropriate type of memory cell are furtherapplicable.

Memory cards, which are commonly used to store digital data, are usedwith various electronic devices. Some memory cards are referred to as“embedded” cards and some memory cards are referred to as “removable”cards, which means that they can easily be moved by an end-user from oneelectronic device to another, thereby rendering the digital data storedin them portable data. The memory cards can have a relatively small formfactor and can be used to store digital data for electronic devices thatrequire data storage, such as digital cameras, media players/recorders(e.g., MP3 players), hand-held or notebook computers, personal digitalassistants (PDAs), cellular phones, network cards, network appliances,set-top boxes, and hand-held or other devices.

Nonetheless, the present disclosure may employ any mass storage device,whether it is a removable storage device that is configured forconnection to and removal from the storage system or a dedicated storagedevice that is embedded within a storage system.

Accordingly, the storage devices discussed herein may have aconfiguration that complies with any memory type (e.g. flash memory)and/or memory card format (e.g., a secured digital (“SD”) memory cardformat) used for storing multimedia content such as audio, video, orpicture files. The storage device may also have a configuration thatcomplies with a multi media card (“MMC”) format, a compact flash (“CF”)format, a flash PC (e.g., ATA Flash) format, a smart-media format, a USBflash drive, a memory stick format, or with any other industry standardformat.

The storage device may have a non-volatile memory that retains itsmemory or stored state even when power is removed. The storage devicemay also employ an erasable programmable memory technology, e.g. anelectrically-erasable and programmable read-only memory (EEPROM), EPROM,MRAM, FRAM ferroelectric, magnetic or other memory. Note that the deviceconfiguration does not depend on the type of memory, and may beimplemented with any type of memory, be it a flash memory or anothertype of memory. The device may also be implemented with a memory chipand/or with three-dimensional (3D) memory chip technology.

The host discussed herein may be a personal computer, a notebookcomputer, a hand held computing device, such as a PDA (Personal DigitalAssistant) or mobile handset, a cellular telephone, a camera, an audioreproducing device, or any other electronic device that work withremovable data storage. A host may have various personal informationmanagement applications, such as an address book, a daily organizer, andelectronic notepads, to name a few.

FIG. 1 is a block diagram of a storage system 10 according to an exampleembodiment. Storage system 10 typically includes a plurality of storagedevices designated as “SDa1”, “SDa2”, “SDa3”, . . . , “SDaN”, which areoperatively connected to a state machine 12.

Typically, storage devices SDa1 through SDaN of storage system 10 aresimilar or identical; i.e., they are configured likewise and, therefore,store data in a similar manner. However, storage devices may beconfigured differently.

State machine 12 may be, for example, a controller or a CPU thatcontrols the operation of storage devices SDa1 through SDaN. Statemachine 12 may be implemented in software, hardware, firmware, or anycombination thereof.

State machine 12 controls operation (i.e., storage operations) of aparticular one of storage devices SDa1 through SDaN based on information(the information being referred to herein as “current consumptioninformation”) pertaining to the electrical current consumption of atleast another one of storage devices SDa1 through SDaN. For example,storage system 10 may control the operation of storage device SDa1 basedon current consumption information associated with, related to, orpertains to, at least storage device SDa2. For example storage system 10may control the operation of SDa1 based on current consumptioninformation associated with, related to, or pertains to SDa2, SDa3, andSDaN.

The current consumption information may be communicated to state machine12 from storage devices SDa1, SDa2, SDa3, . . . , SDaN, or be providedto state machine 12 on their behalf. Additionally or alternatively, thecurrent consumption information is made available to state machine 12from the storage device manufacturer or from another device and storedon a database of information 16 (see table 100 of FIG. 5). Database ofinformation 16 may be stored on state machine 12 or accessible by statemachine 12.

As already mentioned above, state machine 12 may be connected todifferent types of storage devices require low and high currentconsumption level at different times. Accordingly, a self-learningmechanism 14 is provided in order for it to teach or train state machine12 to develop database of information 16 to include information that isassociated with the current consumption level that is required forfuture control of each storage device by state machine 12. Such trackingcan be further used for a variety of purposes, including transferringinformation associated with the current consumption information to anexternal unit, etc. Self-learning mechanism 14 may be implemented,embedded or incorporated into state machine 12, as shown in FIG. 1, orit may be external to, and operatively connected to, state machine 12,as shown in FIG. 2.

A basic control over the current consumption of storage devices SDa1,SDa2, SDa3, . . . , SDaN is performed as described below. State machine12 continually and separately communicates with each of storage devicesSDa1, SDa2, SDa3, . . . , SDaN. Each of storage devices SDa1, SDa2,SDa3, . . . , SDaN is uniquely identified to state machine 12, e.g., byusing identifiers (e.g., identification numbers) that are arbitrarilyassigned to the storage devices.

In order to facilitate management of the current consumption of storagedevices SDa1, SDa2, SDa3, . . . , SDaN by state machine 12, currentconsumption information is exchanged (either continually, occasionally,or intermittently) between each of storage devices SDa1, SDa2, SDa3, . .. , SDaN and state machine 12.

The state machine 12 is operable to synchronize between the storagedevices. In other words, the state machine 12 controls the timing atwhich each of the storage devices SDa1, SDa2, SDa3, . . . , SDaNoperates, so as to ensure that the total amount of electrical currentthat is collectively consumed at any given time by all the storagedevices SDa1, SDa2, SDa3, . . . , SDaN does not exceed a maximumoperational value beyond which reliable operation of storage system 10cannot be ensured or guaranteed.

While in communication with each of storage devices SDa1, SDa2, SDa3,SDaN, state machine 12 controls programming (i.e., writing), erasing andreading of data to and from one storage device based on the currentconsumption information pertaining to at least another such storagedevice. State machine 12 may communicate with the storage devices SDa1,SDa2, SDa3, . . . , SDaN using any suitable communication protocol. Forexample, as shown in FIG. 1, communication links C1, C2, C3, . . . , CNmay respectively be used for transferring storage commands andSynchronization signals from state machine 12 to the storage devicesSDa1, SDa2, SDa3, . . . , SDaN, and for transferring current consumptioninformation in the opposite way; i.e., from the storage devices SDa1,SDa2, SDa3, . . . , SDaN to state machine 12.

A storage command may be, for example, a data read command, a data write(program) command, and a data erase command.

In the context of the present disclosure, a Synchronization signal is amessage telling a storage device (e.g., the storage device designated asSDa1) that it is permitted to consume up to a certain current level(e.g., up to the maximal current available by the storage system). TheSynchronization signal may be generated by and forwarded from a statemachine to the storage device with which it operates, as demonstrated inFIG. 1. Alternatively or additionally, the storage system may generateand exchange synchronization signals among themselves, as demonstratedin FIG. 2. A synchronization signal may be forwarded to a storage deviceat any point of time.

In the context of the disclosure, “information” and “current consumptioninformation” may include any real time information that is dynamicallyupdated (i.e., by a state machine or by a storage devices) over time,and/or information indicating a fixed, predefined, scheduling that isindicative of expected timing of different (e.g., high, medium and low)current consumption levels. Current consumption information originatingfrom a storage device may also include a unique storage deviceidentifier that identifies the storage device to state machine 12. Thecurrent consumption information of each storage device may be providedto the state machine by the storage devices themselves, and/or may beembedded in the state machine 12 during manufacturing.

Storage device 10 is configured such that prior to initial operation ofeach storage device, a storage device is configured (e.g. duringmanufacturing) or instructed by state machine 12 to operate at highcurrent consumption level in response to receiving a correspondingsynchronization signal. In other words, the storage devices of storagesystem 10 are not permitted to resume high current consumption level,and/or to operate above a certain current consumption threshold unlessthey get a permission to do so by an appropriate command. State machine12 transmits a Sync. signal to one storage device (e.g., SDa1),permitting it to operate at a high current consumption level, whilepermitting the remainder of the storage devices (e.g., SDa2, SDa3, . . ., SDaN) to operate at a lower current consumption level.

In the context of the present disclosure, “permitting a storage deviceto operate at a high current consumption level, while permitting theremainder storage devices to operate at a lower current consumptionlevel” means that the storage system enables this one storage device toconsume high and/or maximum allowed current consumption level (astypically defined in the configuration), while temporarily enabling theother storage devices of the storage system to consume low and/orminimum current consumption level (as typically defined in theconfiguration). Alternatively or additionally, “permitting one storagedevice to operate at a first current consumption level, while permittingthe remainder storage devices to operate at a second current consumptionlevel” may mean that a signal is sent to this one storage device, thusenabling the current consumption of this one storage device, whiletemporarily disabling the current consumption of the other storagedevices.

The storage devices are designated to operate at high and low currentconsumption levels, usually during manufacturing. Typically, a storagedevice consumes a relatively high current when it performs any storageoperation and a low current otherwise, e.g., when the storage device isin an idle state.

In an exemplary embodiment state machine 12 respectively forwardsstorage commands and Sync signals via communication links C1, C2, C3, .. . , CN to storage devices SDa1, SDa2, SDa3, . . . , SDaN.

For example, state machine 12 may be programmed to issue a programcommand to three storage devices simultaneously in the following manner:permitting storage device SDa1 to consume a relatively high level ofcurrent throughout a first slot of 50 microseconds (μsec) of theprogramming operation; then prompting storage device SDa2 to consume arelatively high level of current throughout a first subsequent slot 50μsec of the programming operation (while permitting SDa1 to operate atlow current consumption level), and only then permitting storage deviceSDa3 to consume a relatively high level of current throughout a secondsubsequent 50 μsec time slot of the programming operation (whilepermitting storage device SDa2 at a low current consumption level).

In another implementation, state machine 12 enables a particular storagedevice to consume high current consumption in response to a Ready signalthat is received from another storage device. In the context of thisdisclosure, a “Ready” signal is a signal issued by a storage device tonotify state machine 12 that the storage device in question has finishedto operate at a high current consumption level. The Ready signal, beinga real-time indication, may be issued and sent from one storage deviceto another either directly or indirectly (e.g., via state machine 12).Ready signals may be transferred from storage devices SDa1, SDa2, SDa3,. . . , SDaN to state machine 12, for example, via communication linksC1, C2, C3, . . . , CN.

For the sake of explanation it is assumed that each of storage devicesSDa1, SDa2, SDa3, . . . , SDaN is configured to consume currentconditional on a corresponding a Sync. Signal from state machine 12. Inother words, a storage device may not be enabled to consume current ifit has not received a Sync. Signal permitting this storage device to doso.

According to the schedule of state machine 12, SDa1 is the only storagedevice that is permitted to operate at a high current consumption level.As such, state machine 12 forwards a Sync. Signal to storage deviceSDa1, for example via communication channel C1, permitting storagedevice SDa1 to consume current. Such Sync signal may specify to storagedevice SDa1 the time slot during which the storage device is allowed toconsume the highest current available.

It is noted that even though state machine 12 allots a time slot tostorage device SDa1 during which storage device SDa1 is permitted toconsume high current, storage device SDa1 does not necessarily use theallotted time slot to execute a high-current demanding operation. Inother words, if, during the allotted time slot, storage device SDa1needs to execute an operation that requires high current, storage deviceSDa1 will execute that operation during the allotted time slot. Whenstorage device SDa1 no longer needs to operate at a high currentconsumption level, storage device SDa1 transmits a Ready signal to statemachine 12, indicating to state machine 12 that storage device SDa1 hascompleted execution of a high-current demanding operation, or thatstorage device SDa1 does not plan to execute now an operation thatrequires high current. Upon, subsequent, or responsive to receiving theReady signal, state machine 12 transmits a Sync signal to another one ofstorage devices SDa1, SDa2, SDa3, . . . , SDaN, permitting that storagedevice to operate at the high current consumption level.

The next storage device, among storage devices SDa1, SDa2, SDa3, . . . ,SDaN, to receive a permission from state machine 12 to operate at thehigh current level may be selected by state machine 12 arbitrarily or inan orderly manner, for example, according to the identification numbersof the storage devices. Alternatively, the selection of the next storagedevice to be authorized could be made randomly, with the order of thepermitted storage devices changing from time to time. According toanother implementation, the selection of the next storage device is madeaccording to a predefined scheduling.

The predefined scheduling employed by state machine 12 may factor inpriority considerations. In such case, state machine 12 enables thecurrent consumption of a particular storage device based also on apriority that is assigned to the particular storage devices.

A state in which one storage device has a higher priority over anotherstorage device may result from an urgent need of first storage device tooperate at a high current consumption level. Under such circumstances,state machine 12 may render one storage device longer (i.e., extended),and/or more frequent, current consumption periods over another storagedevice.

Storage devices SDa1 through SDaN may be prioritized based on one ormore criteria selected from the group of criteria including, but notlimited to, the type of content that is transferred to a particularstorage device at a certain time, the specific storage deviceconfiguration, the degree of immunity to change in current consumptionof a particular storage device, and the a level of activity of thestorage device. Such criteria may be set on state machine 12 duringconfiguration and/or provided to state machine 12 from an externaldevice and/or from any other means, and received as input from a userfor example.

For example, state machine 12 can determine to assign a high prioritylevel to a particular storage device and to apply that priority when acertain type of information (e.g., BOOT information, informationassociated with the operating system, or any other important oroperationally, or otherwise, critical user or system information) is tobe transmitted to that storage device.

Prioritization of storage devices may be based on additional one or morecriteria, or on alternative criteria. For example, state machine 12 mayassign a storage device low priority level when the storage device isbusy executing an operation that does not require high current or longtime periods of high current consumption. According to another example,state machine 12 assigns a storage device low priority level when thisstorage device does not support the specific protocol between statemachine and/or any of the other storage devices, when a storage devicebecomes bad and malfunctions, etc. Additionally or optionally, the statemachine may assign a storage low priority level when the storage deviceis operating in sleep mode or in idle mode.

Note that the manner in which state machine 12 permits the currentconsumption of a particular storage device may vary from one storagesystem to another and from one point in time to another on the samestorage system. Also note that state machine 12 may be provided withadditional storage device management capabilities known to those skilledin the art, such as wear-leveling management, error correction code(“ECC”) management, bad bock management, and data transfer management.

FIG. 2 is a block diagram of a storage system 20 according to anotherexample embodiment. Storage system 20 includes an arrangement identicalto that of storage system 10 shown in FIG. 1, except that in storagesystem 20 storage devices SDb1, SDb2, SDb3, . . . , SDbN are operativelyinterconnected in a wiring scheme known as “daisy chain”. Briefly,“daisy chain” is a communication's bus wiring scheme in which, forexample, device A is wired to device B, device B is wired to device C,etc. The last device is normally wired to a resistor or terminator. Alldevices may receive identical signals or, in contrast to a simple bus,each device in the chain may modify one or more signals before passingthem on.

The operational connections between the storage devices may be physicalconnections or wireless connections. Further, the connection between thestorage devices shown in FIG. 2 need not be via a direct communicationchannel. Accordingly, it is not required that a storage device beconnected (either physically or wirelessly) to an adjacent storagedevice, nor it is required that a storage device be connected to onlyone storage device.

The connection between two adjacent storage devices (e.g., betweenstorage devices SDb1 and SDb2) is facilitated by “Sync Out”, “Ready In”,“Sync In” and “Ready Out” communication ports. Each of storage deviceSDb1 through SDbN has these four ports, except for the firt storagedevice (i.e., storage device SDb1) and the last storage device (i.e.,storage device SDbN): SDb1 has only a Sync Out port and a Ready In portand SDbn has only a Sync In port and a Ready Out port. Sync signals aretransferred, or cascaded, downstream the daisy chain, from the Sync Outport of one storage device to the Sync In port of the next storagedevice to which it is connected (e.g., from SDb1 to SDb2), until theSync signals reach the last storage device, which is SDbN in FIG. 2.Ready signals are transferred, or cascaded, in the opposite way (i.e.,upstream the daisy chain), from the Ready Out port of one storage deviceto the Ready In port of the next storage device to which it isconnected.

The connections C1′, C2′, C3′, . . . , CN′ between storage devices SDb1through SDbN and a state machine 22 may be identical or similar to theconnections C1, C2, C3, . . . , CN shown in FIG. 1. Communication linksC1′, C2′, C3′, . . . , CN′ are used to forward storage commands andEnable signals to storage devices (SDb1, SDb2, SDb3, . . . , SDbN)respectively, which are issued by state machine 12. Communication linksC1′, C2′, C3′, . . . , CN′ are also used to transfer current consumptioninformation from storage devices SDb1, SDb2, SDb3, . . . , SDbN to statemachine 12.

In the example shown in FIG. 2 a storage device may be permitted toconsume high current in response to receiving a Sync signal from anotherstorage device, and/or a permission message that is issued by statemachine 22 as an Enable signal. An Enable signal that is transferredfrom state machine 22 to a particular storage device switches thisstorage device “on”, thus enabling this device to respond to a Syncsignal that may be received at any time thereafter.

A basic, non-limiting, mode of operation will now be described. Statemachine 12 is in communication with each of the storage device SDb1,SDb2, SDb3, . . . , SDbN via communication links C1′, C2′, C3′, . . . ,CN′. Storage device SDb1, SDb2, SDb3, . . . , SDbN, which, as mentionedabove, are uniquely identified to state machine 12, are turned “off”,not allowing them to consume high current consumption. State machine 22may enable a particular storage device to allow that storage device torespond to a Sync signal according to a predefined scheduling that maybe based on, or factor in, current consumption information that pertainsto the remainder of the storage devices.

For the sake of the example, storage device SDb1 is initially permittedto enter a high current consumption state, which means that SDb1 ispermitted to consume high current in response to receiving acorresponding Enable signal from state machine 22. So long as the Enablesignal is valid, the storage device SDb1 can actually exerciseconsumption of high current or resume high current consumption inresponse to a Ready signal that SDb1 receives (via Ready In port ofstorage device SDb1) from storage device SDb2. Storage device SDb1issues a Sync signal to storage device SDb2 (via Sync Out port of SDb2).

Storage devices SDb2, SDb3, . . . , SDbN operate differently thanstorage device SDb1. Again, each of storage devices SDb2, SDb3, . . . ,SDbN are permitted to consume high current in response to receiving acorresponding Enable signal from state machine 22. So long as the Enablesignal is valid, storage devices SDb2, SDb3, . . . , SDbN are operableto consume high current in response to a corresponding Sync signal thatis received from storage devices SDb1, SDb2, . . . , SDbN−1 (via Sync Inports) respectively. Storage devices SDb2, SDb3, . . . , SDbN issue aReady signal to storage devices SDb1, SDb2, . . . , SDbN−1 (via ReadyOut ports) respectively.

Typically, a Ready signal received by storage devices SDb2, SDb3, . . ., SDbN−1 (from storage devices SDb3, SDb4, . . . , SDbN) are traversedto storage devices SDb1, SDb2, . . . , SDbN−2, respectively.

Since any of storage devices SDb1, SDb2, SDb3, . . . , SDbN may be incommunication with any one or more storage devices residing in storagesystem 20, a particular storage device may further receive and/ortransmit corresponding Sync/Ready signals to and from any one of theother storage devices in storage system 20, according to the specificconfiguration.

Note that any combination of the arrangements of FIGS. 1 and 2 and/orthe functionalities of any of the components depicted in thearrangements of FIGS. 1 and 2 may also be applicable herein.

FIG. 3 shows in more detail a storage device (storage device SDaN, forexample) of FIG. 1, according to an example embodiment. Again, storagedevice SDaN is directly, or indirectly, connected to one or more otherstorage devices of the storage system, depending on the configuration.

Storage device SDaN includes circuitry typically including a storageportion, such as a memory array 32 a, for storing data, and a storagedevice controller 34 a. Storage device controller 34 a is provided formanaging the programming of data onto and the reading of data from thememory array 32 a. Storage device controller 34 a controls currentconsumption of the storage device SDaN in response to receiving asignal, such as a Sync signal, from a state machine, via an interface36.

The state machine may be the state machine described, for example, withrespect to the storage system in FIG. 1 and FIG. 2). Further asmentioned above, the storage device SDaN may be operable to convey areal-time indication of its current consumption level to the statemachine, via interface 36.

FIG. 4 shows in more detail a storage device (storage device SDbN, forexample) of FIG. 1, according to an example embodiment.

Storage device SDbN includes circuitry typically including a storageportion, such as a memory array 32 b, for storing data, and a storagedevice controller 34 b. Storage device controller 34 b is provided formanaging the programming of data onto and the reading of data from thememory array 32 b. Storage device controller 34 b controls currentconsumption of the storage device SDbN in response to receiving asignal, such a Sync signal, from a state machine, via an Enable port 48,and further based on an Enable signal that is received from another suchstorage device via a Sync In port. The Sync signal may be received atany point in time, either following or preceding the receipt of thestorage operation command.

Storage device controller 34 b is further operable to transmit Syncsignals and Ready signals to other such storage device (typically beingin direct connection with storage device SDbN), via Sync Out and ReadyOut port connections respectively. When receiving a Ready signal,storage device SDb2 either conveys this Ready signal to another suchstorage device, via a Ready Out port connection, or enters a highcurrent consumption state, depending on the specific configuration.

The Sync and Ready signals are issued in the same manner as describedabove, i.e. the Sync signals are transmitted for permitting the otherstorage device to commence operating at high current consumption level;and the Ready signals are transmitted for typically notifying the otherstorage device about no longer consuming high current.

As mentioned above, the state machine may be the state machinedescribed, for example, with respect to the storage system in FIG. 1 andFIG. 2). Further as mentioned above, storage device SDbN may be operableto convey a real-time indication of its current consumption level to thestate machine, via an interface 46.

FIG. 5 shows a table 100 for holding current consumption information,according to an exemplary embodiment. In general, table 100 providesinformation pertaining to current consumption requirements associatedwith storage devices SDa1, SDa2, SDa3, SDa4, and SDa5.

By way of example, table 100 provides current consumption informationfor storage devices that require 20 microseconds for consuming amount of50 mA at high current consumption state; and require 30 microseconds forconsuming amount of 7 mA.

In particular, table 100 includes field 110 for indicating amount ofcurrent (in milliAmpere) required by a storage device for operating at ahigh current consumption state; field 120 for indicating the time (inmicroseconds) that a storage device requires for operating at highcurrent state, field 130 for indicating amount of current (inmilliAmpere) required by a storage device for operating at a low currentconsumption state; field 140 for indicating the time (in microseconds)that a storage device requires for operating at low current state, field150 for indicating priority, and field 160 for indicating theoperational state.

Table 100 includes five exemplary entries where each entry refers to adifferent storage device. For example, entry 210 refers to storagedevice SDa1. SDa1 is operating and is assigned a high priority. Entry220 refers to storage device SDa2. SDa1 is operating and is assigned ahigh priority as well.

Entry 230 and 250 refer to storage devices SDa3 and SDa5, respectively.As SDa3 is malfunctioning and SDa5 is set on sleep mode, both devicesare assigned a low priority.

Entry 240 refers to storage device SDa4. SDa4 is operating and isassigned a medium priority. Under such circumstances, state machine 12may render storage devices SDa1 and SDa2 longer (i.e., extended), and/ormore frequent, current consumption periods over storage device SDa4.

Again, current consumption requirements is not limited to the exemplaryvalues used herein, and may be based on other values, as discussedabove.

FIG. 6 shows an example method 50 by which a state machine controls ormanages a plurality of storage devices. FIG. 6 will be described inassociation with FIG. 1. The method depicted herein may be employed by astate machine, such as state machine 13 of storage system 10, formanaging operation of storage devices SDa1 through SDan. For the sake ofthe example, the method will be described using only storage devicesSDa1, SDa2 and SDa3.

At the initial step S51, state machine 12, provided with communicationlinks to the storage devices, issues a storage operation command. Formere example, the storage operation command issued herein is aprogramming command for storing data onto the three storage devicessimultaneously.

At step S52, state machine 12 transmits a Sync signal to the firststorage device, permitting the first storage device to operate at a highcurrent consumption level (S53), while a second and a third storagedevice operate at a low current consumption level.

At step S54, state machine 12 receives a Ready signal from the firststorage device, indicating that the first storage device is no longeroperating at a high current consumption level.

Next at step S55 (after receipt of the Ready signal), state machine 12transmits a Sync signal to the second storage device. This signalpermits the second storage device to commence operating at a highcurrent consumption level (S56), while the first and third storagedevices operate at a low current consumption level.

At step S57, state machine 12 receives a Ready signal from the secondstorage device, indicating that the second storage device is no longeroperating at a high current consumption level.

Next at step S58 (after receipt of the Ready signal), state machine 12transmits a Sync signal to the third storage device. This signal permitsthe third storage device to commence operating at a high currentconsumption level (S59), while the first and second storage devicesoperate at a low current consumption level.

At step S60, state machine 12 receives a Ready signal from the thirdstorage device, indicating that the third storage device is no longeroperating at a high current consumption level.

After receipt of the Ready signal from the third storage device, statemachine 12 determines whether it has reached the last sub-state in thecurrent program operation (S61), i.e. whether the last Sync signal hasbeen issued. If so the process ends; if not, the process returns to stepS51.

FIG. 7 shows an example method 60 by which a state machine controls ormanages two storage devices. FIG. 7 will be described in associationwith FIG. 1. At step 61 load timing information including T1 and T2 thatwill be used is loaded from FLASH or ROM. At 62, program sequence isstarted in SD1 and SD2. At step 63, SD1 is set to high currentconsumption state and SD2 is set to low current consumption state andtimer is loaded to T1. At step 64, if time T1 has elapsed then SD1 isset to low current consumption state and SD2 is set to high currentconsumption sate and T2 is loaded to timer at step 65. At step 66, whentime T2 has elapsed, control is passed back to step 63.

The order of operation of each storage device is brought here as anexample only. Accordingly, the controller may transmit a Sync signals toany other storage devices according to a random order and/or accordingto any other predefined order.

As will be appreciated by those familiar in the art, currenttechnologies employ a wide variety of different architectures and it isexpected that new architectures will continue to be developed. Ingeneral, the exemplary embodiments may be employed in conjunction with awide variety of different types of memory, so long as the storage devicehas suitable processing power.

The embodiments, various examples of which are described herein, may berealized in hardware, software, or a combination of hardware andsoftware. A typical combination of hardware and software could be ageneral purpose computer system with a computer program that, when beingloaded and executed, controls the computer system such that it carriesout the methods described herein. The concepts described above can alsobe embedded in a computer program product, which comprises all thefeatures enabling the implementation of the embodiments describedherein, and which, when loaded in a computer system is able to carry outthese embodiments. Computer program or application in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

Having described the various embodiments of systems and a method, it isto be understood that the description is not meant as a limitation,since further modifications will now suggest themselves to those skilledin the art, and it is intended to cover such modifications as fallwithin the scope of the appended claims.

1. A method of managing operation of a plurality of storage devices, themethod comprising: receiving current consumption information from atleast one of the plurality of storage devices; and managing operation ofat least one of the plurality of storage devices, the operationmanagement including providing a start signal to a first one of aplurality of storage devices that initiates power consumption at a highcurrent level in the first storage device; switching the first one ofthe storage devices to a low current level; providing a completionsignal from the first one of the storage devices upon completion ofpower consumption at a high current level; receiving the completionsignal at one of a state machine or a next one of the plurality ofstorage devices indicating that said first storage device has completedthe power consumption at the high current level; and providing secondstart signal to one of the state machine and the next one storage deviceand initiating power consumption at a high current level in the nextstorage device while the rest of the plurality of storage devicesoperate at low current level.
 2. The method of claim 1, wherein thecurrent consumption information includes a real-time indication ofcurrent consumption of at least a second one of the plurality of storagedevices, and wherein the current consumption information is dynamicallyupdated.
 3. The method of claim 1, wherein the managing further includes(a) programming of data onto the first one of the plurality of storagedevices, erasing of data from the first one of the plurality of storagedevices, and reading of data stored on the first one of the plurality ofstorage devices, or (b) programming of data onto the next one of theplurality of storage devices, erasing of data from the next one of theplurality of storage devices, and reading of data stored on the next oneof the plurality of storage devices, based on the current consumptioninformation.
 4. The method of claim 1, wherein the permitting includessuspending current consumption of the first one of the plurality ofstorage devices and permitting current consumption of another one of theplurality of storage devices to be resumed, based on the currentconsumption information, or permitting current consumption of the firstone of the plurality of storage devices to be resumed and suspendingcurrent consumption of another one of the plurality of storage devices,based on the current consumption information.
 5. A method of managingoperation of a plurality of storage devices, the method comprising:receiving current consumption information from at least one of theplurality of storage devices; and managing operation of at least one ofthe plurality of storage devices, the operation management includingpermitting current consumption of a first one of the plurality ofstorage devices based on current consumption information that pertainsto at least a second one of the plurality of storage devices; andfurther comprising connecting at least one of the plurality of storagedevices directly to another one of the plurality of storage devices. 6.The method of claim 5, wherein the first one of the plurality of storagedevices is directly connected to at least another one of the pluralityof storage devices, and wherein the current consumption of the first oneof the plurality of storage devices is permitted in response to a signalreceived by the first one of the plurality of storage devices from atleast the second one of the plurality of storage devices.
 7. The methodof claim 1, wherein said providing of the start signals is based on apriority assigned to at least one of the plurality of storage devices.8. The method of claim 7, wherein the priority is based on a degree ofimmunity to change in current consumption, a level of activity, a typeof content associated with and/or a configuration of the at least one ofthe plurality of storage devices to which the priority is assigned.
 9. Astorage system comprising: a plurality of storage devices, each of theplurality of storage devices being configured to store data; and a statemachine connected to each of the storage devices, the state machinebeing operative to manage operation of at least one of the plurality ofstorage devices, the operation management including permitting currentconsumption of a first one of the plurality of storage devices based oncurrent consumption information that pertains to at least a second oneof the plurality of storage devices wherein said current consumptioninformation indicates a fixed predefined scheduling that is indicativeof expected timing of different current consumption levels.
 10. Thestorage system of claim 9, wherein at least one of the plurality ofstorage devices has a configuration complying with flash memorytechnology.
 11. The storage system of claim 9, wherein at least one ofthe plurality of storage devices is a dedicated non-removable storagedevices that is not removable from the apparatus.
 12. The storage systemof claim 9, wherein at least one of the plurality of storage devices isa removable storage device that is configured for removal from andaddition to the storage system, the removable storage device including amemory card.
 13. A storage device operationally connected to a statemachine and to one or more other storage device, the storage devicecomprising: a storage portion configured to store data; and circuitryoperative to manage operation of the storage portion, the operationmanagement including permitting current consumption of the storagedevice based on current consumption information that pertains to atleast one other storage device operationally connected to the storagedevice, the permitting of the current consumption being carried outbased on a command received from one of a state machine or a directlyconnected one or more storage device.
 14. A device for managing aplurality of storage devices, the device comprising: a state machineoperationally connected to a plurality of storage devices, the statemachine being operative to manage operation of at least one of theplurality of storage devices, the operation management includingreceiving a ready signal from a first one of the storage devicesindicating that it is ready perform power consumption at a high currentlevel; providing a start signal to the first one of the plurality ofstorage devices, the start signal enabling the power consumption at ahigh current level in the first storage device; receiving a completionsignal from the first one of the storage devices upon its completion ofpower consumption at a high current level indicating that the first oneof the storage devices has completed power consumption at a high currentlevel and switched to a low current level operational mode; receiving asecond ready signal from another one of the storage devices indicatingthat it is ready perform power consumption at a high current level;providing a second start signal to the another storage device, thesecond start signal enabling the power consumption at a high currentlevel in the another storage device; and receiving a completion signalfrom the another storage device upon its completion of power consumptionat a high current level indicating that the another storage device hascompleted power consumption at a high current level and switched to alow current level operational mode; and iteratively receiving readysignals and receiving completion signals from selected storage devicesof the plurality of storage devices enabling the provision of startsignals to said selected storage devices.
 15. The storage device ofclaim 14 wherein the state machine defines priorities for storagedevices that enable selective usage of storage device power consumptionat a high power level.
 16. A method as recited in claim 1 wherein, theplurality of storage devices are in direct communication with the statemachine and are not in direct communication with each other, and whereinthe providing of the start signal to a first one of a plurality ofstorage devices comprises providing the start signal from the statemachine; wherein receiving the completion signal comprises receiving thecompletion signal from the first storage device at the state machine;and wherein the providing of the second start signal to the next storagedevice comprises providing the providing of the second start signal fromthe state machine.
 17. A method as recited in claim 16 wherein theproviding a start signal to a first storage device that initiates powerconsumption at a high current level in the first storage device furtherincludes operating the rest of the plurality of storage devices operateat a low current level.
 18. A method as recited in claim 1 wherein,wherein the providing of the start signal to a first one of a pluralityof storage devices comprises providing the start signal from a priorstorage device of the plurality of storage devices; providing acompletion signal from the first one of the storage devices to saidprior storage device of the plurality of storage devices; whereinreceiving the completion signal comprises receiving the completionsignal from the first storage device at said prior storage devicethereby indicating that said first storage device has completed thepower consumption at a high current level; wherein receiving thecompletion signal comprises receiving the completion signal at the priorstorage device; and wherein the providing of the second start signalcomprises providing the second start signal to the next storage deviceenabling it to initiate power consumption at a high current level.